Graphical user interfaces have become standard fare on most computers sold today. For example, versions of the Microsoft Windows operating system provide a graphical user interface in which a pointer is positionable over windows on a screen via an input device such as a mouse or a trackball. When such a user interface is used in a two-dimensional (2D) context, movement of two-dimensional objects within the user interface is intuitive, and commonly performed: a user positions the pointer over an object using the mouse, clicks a button on the mouse (thereby selecting the object), and moves the mouse, which causes the object to be dragged across the screen in accordance with movement of the mouse, until the user releases the mouse button.
The movement of two-dimensional objects within a user interface is intuitive using a pointing device because movement of the pointing device is easily mapped to the corresponding two-dimensional plane of the screen itself. For example, moving a mouse to the right while an object is selected causes the object to be moved to the right. As another example, moving the mouse up while the object is selected causes the object to be moved up. Pointing devices typically only permit indication of movement within a two-dimensional plane. Because a user interface is also usually used within a two-dimensional context .quadrature. i.e., the screen within which the user interface exists being a two-dimensional plane .quadrature. using a pointing device to move objects in an intuitive manner within the user interface is easily accomplished.
However, user interfaces such as those provided by operating systems like versions of the Microsoft Windows operating system are also increasingly being used to operate in a three-dimensional (3D) context. Although the screen is still a two-dimensional plane, a third dimension may be approximated by giving objects within the user interface an illusory depth. Thus, an object, besides being able to be moved up, down, left and right, may also be portrayed in such a manner that it can be moved forward (towards the user looking at the screen) or backward (away from the user looking at the screen).
Two-dimensional pointing devices do not, however, provide intuitive control of such objects within a three-dimensional user interface. Because the pointing devices can only indicate movement within a two-dimensional plane, there is no natural mapping of movement of these pointing devices to a user interface within a three-dimensional context. Particularly, while a typical pointing device such as a mouse may be able to intuitively control movement of a three-dimensional object in two dimensions--such as within planes parallel to the screen--it does not provide for intuitive control of the object in the third dimension, such as within planes not necessarily parallel to the screen. Thus, there is a need for providing such two-dimensional pointing devices intuitive capability to control movement of a three-dimensional object within a three-dimensional user interface.